// 第一步：引入Vue、和Vuex(固定写法)
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex);

// 第二步：声明Vuex 的五个属性，其中state,mutations 是一定要定义的，其他的三个属性对象根据实际需要。
const state = { // 初始化状态值--一定要有该属性对象         
    payStatus: false,
    status: false,
    showNav: true,
    activity: {}
}
const mutations = { // 自定义改变state初始值的方法--一定要有该属性对象
    changePayStatus(state, obj) {
        state.payStatus = obj.payStatus;
        state.status = obj.status;
        state.activity = obj;
    },
    changeShowNav: (state, obj) => {
        state.showNav = obj;
    }
}
const getters = { // 状态计算属性--该属性对象不是必须的            
    perStatus: state => state.payStatus ? '已购买' : '立即购买',
    perShowNav: state => state.showNav,
    getActivity: state => state.activity
}
const actions = { // 异步操作状态--该属性对象不是必须的

}
const modules = { // 状态模块--该属性对象不是必须的

}

// 第三步：创建一个 store 实例，将声明的五个变量赋值赋值给 store 实例，如下：
const store = new Vuex.Store({
    state,
    mutations,
    //下面三个非必须
    getters,
    actions,
    modules
})

// 第四步：导出 store 实例，供外部访问
export default store;
